package set;

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class test {

	public static void main(String[] args) {
		test03();

	}
	
	/**
	 *TreeSet的应用
	 */
	private static void test03() {
		//HashSet元素的储存和读取操作
		//创建一个HashSet的实例对象
		//面向接口的编程：左侧是接口父类，右侧是实现子类的实例对象（多态：父类代指子类）
		Set set = new TreeSet();
		//存入元素对象
		set.add("zhangsan");
		set.add("lisi");
		set.add("lisi");
		set.add("wangwu");
		//set.add(null);
		System.out.println("取出HashSet集合中的元素：");
		//读取元素
		for(Object object :set) {
			System.out.println(object);
		}
		
		System.out.println("使用迭代器循环遍历取出HashSet集合中的元素：");
		//获取当前集合对象的迭代器对象
		Iterator it =set.iterator();
		//迭代器的hasnext方法判定有么有下一个元素对象；
		//迭代器的next方法获取下一个元素对象，并将迭代器迭代位置（指针）向后挪动一个偏移量
		while(it.hasNext()) {
			System.out.println(it.next());
		}
		
		
	}
	
	
	
	/**
	 * LinkeHashSet的应用
	 */
	private static void test02() {
		//HashSet元素的储存和读取操作
		//创建一个HashSet的实例对象
		//面向接口的编程：左侧是接口父类，右侧是实现子类的实例对象（多态：父类代指子类）
		Set set = new LinkedHashSet();
		//存入元素对象
		set.add("zhangsan");
		set.add("lisi");
		set.add("lisi");
		set.add("wangwu");
		set.add(null);
		System.out.println("取出HashSet集合中的元素：");
		//读取元素
		for(Object object :set) {
			System.out.println(object);
		}
		
		System.out.println("使用迭代器循环遍历取出HashSet集合中的元素：");
		//获取当前集合对象的迭代器对象
		Iterator it =set.iterator();
		//迭代器的hasnext方法判定有么有下一个元素对象；
		//迭代器的next方法获取下一个元素对象，并将迭代器迭代位置（指针）向后挪动一个偏移量
		while(it.hasNext()) {
			System.out.println(it.next());
		}
		
		
	}
	
	
	/**
	 * HashSet的应用
	 */
	private static void test01() {
		//HashSet元素的储存和读取操作
		//创建一个HashSet的实例对象
		//面向接口的编程：左侧是接口父类，右侧是实现子类的实例对象（多态：父类代指子类）
		Set set = new HashSet();
		//存入元素对象
		set.add("zhangsan");
		set.add("lisi");
		set.add("lisi");
		set.add("wangwu");
		set.add(null);
		System.out.println("增强型的for循环遍历取出HashSet集合中的元素：");
		//读取元素
		for(Object object :set) {
			System.out.println(object);
		}
		
		System.out.println("使用迭代器循环遍历取出HashSet集合中的元素：");
		//获取当前集合对象的迭代器对象
		Iterator it =set.iterator();
		//迭代器的hasnext方法判定有么有下一个元素对象；
		//迭代器的next方法获取下一个元素对象，并将迭代器迭代位置（指针）向后挪动一个偏移量
		while(it.hasNext()) {
			System.out.println(it.next());
		}
	}

}
